import java.util.Random;
import java.util.Scanner;

public class TestDemo {
    //随即猜数字初阶版
    public static void main1(String[] args) {

        Scanner sc = new Scanner(System.in);//输入要猜的数字
        Random ra = new Random();
        int rum =ra.nextInt(501);//因为要取100为整数，左闭右开，所以我们需要确定100
        while(true){
            System.out.println("请输入要猜的数字:");
            int num = sc.nextInt();
            if(num < rum){
                System.out.println("你输入的小了");
            }else if(num > rum){
                System.out.println("你输入的大了");
            }else{
                System.out.println("恭喜你猜对了!");
                break;
            }
        }
        sc.close();
    }

    //升级版
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);//输入要猜的数字
        Random ra = new Random();
        int numToGuess = ra.nextInt(10000) + 1000;//因为要取100为整数，左闭右开，所以我们需要确定100
        while (true) {

            System.out.println("请输入要猜的数字:");
            System.out.println("输入-1中途可退出");
            int useGuess = sc.nextInt();
            if (useGuess == -1) {
                System.out.println("你选择退出了游戏");
                break;
            }
            int Correctnum = CountCorrectDigits(useGuess, numToGuess);
            if (Correctnum == 4) {
                System.out.println("恭喜你猜对了!");
                break;
            } else {
                System.out.println("你猜对了" + Correctnum + "个数字，那么请你继续尝试");
            }
        }
        sc.close();
        //用于计算猜对的数字个数的方法、
    }
    private static int CountCorrectDigits(int guess,int target){
        int count = 0;
        String guessStr = String.valueOf(guess);
        String targetStr = String.valueOf(target);
        //使用string的方法将其转化为String类型
        for (int i = 0; i < 4; i++) {
            if(guessStr.charAt(i)==targetStr.charAt(i)){//通过方法获取两者的字符串的位置，即使数字的位置
                count++;
            }
        }
        return count;
    }


}
